package com.it.a_jichu.f_工具类;

import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

/**
 * 生成随机数
 */
class RandomTest {

    public void test() {
        Random r = new Random();
        int num = r.nextInt(10); // nextInt() 生成 0~1之间的随机数
        System.out.println(num);
    }

}

/**
 * 获取在控制台输入的文本、可以获取基本数据类型及String类的数据（但不包含char字符类型）
 */
class ScannerTest {
    public void test() {
        // 创建一个Scanner类的实例
        Scanner scan = new Scanner(System.in);
        /**
         * scan.next() 接收字符串类型      scan.nextByte();接收byte类型    scan.nextShort();接收short类型
         * scan.nextInt();接收int类型     scan.nextLong();接收long类型    scan.nextFloat();接收float类型
         *  scan.nextDouble(); 接收double类型  scan.nextBoolean();接收boolean类型
         */
        String name = scan.next();            // 接收字符串类型
        int i1 = scan.nextInt();            // 接收int类型
        // 关闭资源
        scan.close();

    }
}

/**
 * Arrays工具类型
 */
class ArraysTest {
    public void test() {
        // 转换为字符串，逗号加空格分隔
        String string = Arrays.toString(new int[]{11, 22, 33});
        System.out.println(string);

        /**
         * 数组排序
         * static void sort(int[] a) ：将a数组按照从小到大进行排序
         * static void sort(int[] a, int fromIndex, int toIndex) ：将a数组的[fromIndex, toIndex)部分按照升序排列
         * static void sort(Object[] a) ：根据元素的自然顺序对指定对象数组按升序进行排序。
         * static void sort(T[] a, Comparator<? super T> c) ：根据指定比较器产生的顺序对指定对象数组进行排序
         */

        /**
         * 数组元素的二分查找
         * static int binarySearch(int[] a, int key)
         * tatic int binarySearch(Object[] a, Object key) ：要求数组有序，在数组中查找key是否存在，如果存在返回第一次找到的下标，不存在返回负数
         */

        /**
         * 数组的复制
         * static int[] copyOf(int[] original, int newLength)  ：根据original原数组复制一个长度为newLength的新数组，并返回新数组
         * static T[] copyOf(T[] original,int newLength)：根据original原数组复制一个长度为newLength的新数组，并返回新数组
         * static int[] copyOfRange(int[] original, int from, int to) ：复制original原数组的[from,to)构成新数组，并返回新数组
         * static T[] copyOfRange(T[] original,int from,int to)：复制original原数组的[from,to)构成新数组，并返回新数组
         */

        /**
         * 比较两个数组是否相等
         * static boolean equals(int[] a, int[] a2) ：比较两个数组的长度、元素是否完全相同
         * static boolean equals(Object[] a,Object[] a2)：比较两个数组的长度、元素是否完全相同
         */

        /**
         * 填充数组
         * static void fill(int[] a, int val) ：用val值填充整个a数组
         * static void fill(Object[] a,Object val)：用val对象填充整个a数组
         * static void fill(int[] a, int fromIndex, int toIndex, int val)：将a数组[fromIndex,toIndex)部分填充为val值
         * static void fill(Object[] a, int fromIndex, int toIndex, Object val) ：将a数组[fromIndex,toIndex)部分填充为val对象
         */

    }
}
public class main {
    public static void main(String[] args) {
        System.out.println("========== Random ==========");
        new RandomTest().test();
        System.out.println("========== Scanner ==========");
        new ScannerTest().test();
        System.out.println("========== Arrays ==========");
        new ArraysTest().test();
    }
}
